package fr.umlv.m2.uwp2011.persistence.sujet.dao;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import fr.umlv.m2.uwp2011.persistence.sujet.ISujetDAO;
import fr.umlv.m2.uwp2011.persistence.sujet.Sujet;

public class HibernateSujetDAO implements ISujetDAO{
	protected static final Map<Long, Sujet> allSujet = new TreeMap<Long, Sujet>();

	
	@Override
	public Sujet findById(Long sujet_id) {
		return allSujet.get(sujet_id);
	}

	
	@Override
	public List<Sujet> findByMatiere(Long matiere_id) {
		List<Sujet> listSujet = new ArrayList<Sujet>();
		for(Sujet sujet : allSujet.values()) {
			if(sujet.getMatiere().getId() == matiere_id) {
				listSujet.add(sujet);
			}
		}
		return listSujet;
	}
	
	@Override
	public List<Sujet> findByUserId() {
		return null;
	}
	
	@Override
	public boolean deleteSujet(Long sujet_id) {
		return allSujet.remove(sujet_id) != null;
	}
	
	@Override
	public boolean addSujet(Sujet sujet) {
		if(allSujet.containsValue(sujet)) {
			return false;
		}
		return allSujet.put(sujet.getId(), sujet) != null;
	}

	@Override
	public List<Sujet> findAll() {
		List<Sujet> list = new ArrayList<Sujet>();
		for(Sujet sujet : allSujet.values()) {
			list.add(sujet);
		}
		return list;
	}

}
